package com.ms.common.utils;

import com.ms.common.exception.NormalException;

public class RedisKeyUtil {

    public static final String LOCK_KEY = "lockKey";

    /**
     * 统一生成redis key方法
     * @param tag 前缀
     * @param key Redis 键值
     * @return String Redis key 字符
     */
    public static String getRedisKey(String tag, String key) {
        StringBuilder buf = new StringBuilder();
        if (StringUtils.isEmpty(tag) || StringUtils.isEmpty(key)) {
            throw new NormalException("生成缓存键参数不能为空");
        }
        buf.append(tag).append(":").append(key);
        String resultKey = buf.toString();
        return EnvUtil.getEnvRedis(resultKey);
    }

    /**
     * 统一生成redis key lock方法
     * @param tag 前缀
     * @param key Redis 键值
     * @return String Redis key 字符
     */
    public static String getRedisKeyLock(String tag, String key) {
        StringBuilder buf = new StringBuilder();
        if (StringUtils.isEmpty(tag) || StringUtils.isEmpty(key)) {
            throw new NormalException("生成缓存键参数不能为空");
        }
        buf.append(tag).append(":").append(key).append(LOCK_KEY);
        String resultKey = buf.toString();
        return EnvUtil.getEnvRedis(resultKey);
    }

}
